# 第一阶段：构建阶段
FROM maven:3.8-openjdk-17 AS build

WORKDIR /app
COPY . .
RUN mvn clean package -DskipTests

# 使用轻量级 JRE 作为基础镜像
FROM openjdk:17-jdk-slim



# 工作目录设置
WORKDIR /app

# 复制应用 JAR 包
COPY target/code-generator-0.0.1-SNAPSHOT.jar app.jar

# 配置环境变量（来自 application.properties）
ENV DB_HOST=localhost \
    DB_PORT=3306 \
    DB_NAME=mydb \
    DB_USERNAME=root \
    DB_PASSWORD=password \
    SERVER_PORT=8080 \
    REDIS_HOST=localhost \
    REDIS_PORT=6379 \
    REDIS_PASSWORD= \
    REDIS_DATABASE=0 \
    JWT_PRIVATE_KEY_PATH=/keys/private_key.pem \
    JWT_PUBLIC_KEY_PATH=/keys/public_key.pem \
    JWT_ACCESS_TOKEN_EXPIRATION=3600000 \
    JWT_REFRESH_TOKEN_EXPIRATION=2592000000 \
    CORS_ALLOWED_ORIGINS=http://localhost:3000 \
    CORS_ALLOW_MAX_AGE=3600 \
    SHOW_SQL=false \
    FORMAT_SQL=false \
    AUTH_COOKIE_ACCESS_TOKEN_MAX_AGE=28800 \
    AUTH_COOKIE_REFRESH_TOKEN_MAX_AGE=604800

# 暴露应用端口
EXPOSE 8080

# 启动 Spring Boot 应用
ENTRYPOINT ["java", "-jar", "app.jar"]
